<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>TURN Server: src/client/ns_turn_msg.h Source File</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">TURN Server
   &#160;<span id="projectnumber">1.5</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.8.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">src/client/ns_turn_msg.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="ns__turn__msg_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2012, 2013 Citrix Systems</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * All rights reserved.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
<a name="l00007"></a>00007 <span class="comment"> * modification, are permitted provided that the following conditions</span>
<a name="l00008"></a>00008 <span class="comment"> * are met:</span>
<a name="l00009"></a>00009 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
<a name="l00010"></a>00010 <span class="comment"> *    notice, this list of conditions and the following disclaimer.</span>
<a name="l00011"></a>00011 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
<a name="l00012"></a>00012 <span class="comment"> *    notice, this list of conditions and the following disclaimer in the</span>
<a name="l00013"></a>00013 <span class="comment"> *    documentation and/or other materials provided with the distribution.</span>
<a name="l00014"></a>00014 <span class="comment"> * 3. Neither the name of the project nor the names of its contributors</span>
<a name="l00015"></a>00015 <span class="comment"> *    may be used to endorse or promote products derived from this software</span>
<a name="l00016"></a>00016 <span class="comment"> *    without specific prior written permission.</span>
<a name="l00017"></a>00017 <span class="comment"> *</span>
<a name="l00018"></a>00018 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS&#39;&#39; AND</span>
<a name="l00019"></a>00019 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
<a name="l00020"></a>00020 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
<a name="l00021"></a>00021 <span class="comment"> * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE</span>
<a name="l00022"></a>00022 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
<a name="l00023"></a>00023 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
<a name="l00024"></a>00024 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
<a name="l00025"></a>00025 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
<a name="l00026"></a>00026 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
<a name="l00027"></a>00027 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
<a name="l00028"></a>00028 <span class="comment"> * SUCH DAMAGE.</span>
<a name="l00029"></a>00029 <span class="comment"> */</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="preprocessor">#ifndef __LIB_TURN_MSG__</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define __LIB_TURN_MSG__</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;ns_turn_ioaddr.h&quot;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &quot;ns_turn_msg_defs.h&quot;</span>
<a name="l00036"></a>00036 
<a name="l00037"></a>00037 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
<a name="l00039"></a>00039 <span class="preprocessor">#endif</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span>
<a name="l00042"></a>00042 
<a name="l00046"></a><a class="code" href="structstun__tid.html">00046</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00050"></a><a class="code" href="structstun__tid.html#a025e6bfa446a237d0b99fe363b58f78e">00050</a>   uint8_t tsx_id[12];
<a name="l00051"></a>00051 } <a class="code" href="structstun__tid.html">stun_tid</a>;
<a name="l00052"></a>00052 
<a name="l00054"></a>00054 
<a name="l00055"></a><a class="code" href="ns__turn__msg_8h.html#ad78e84b431d789f6799b3dabf786e032">00055</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="ns__turn__msg_8h.html#ad78e84b431d789f6799b3dabf786e032">stun_attr_ref</a>;
<a name="l00056"></a>00056 
<a name="l00058"></a>00058 
<a name="l00059"></a>00059 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a2c84115be923002618c40594fec44105">stun_tid_equals</a>(<span class="keyword">const</span> <a class="code" href="structstun__tid.html">stun_tid</a> *id1, <span class="keyword">const</span> <a class="code" href="structstun__tid.html">stun_tid</a> *id2);
<a name="l00060"></a>00060 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#a5fabd815b4039026d720ffc753ed3060">stun_tid_cpy</a>(<a class="code" href="structstun__tid.html">stun_tid</a> *id1, <span class="keyword">const</span> <a class="code" href="structstun__tid.html">stun_tid</a> *id2);
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#ac3814b19ec2efb465bcb5525951f877e">stun_tid_generate</a>(<a class="code" href="structstun__tid.html">stun_tid</a>* <span class="keywordtype">id</span>);
<a name="l00062"></a>00062 
<a name="l00064"></a>00064 
<a name="l00065"></a>00065 u16bits <a class="code" href="ns__turn__msg_8h.html#a9c1d9c489167a62f5ec6f0761638a634">stun_make_type</a>(u16bits method);
<a name="l00066"></a>00066 u16bits <a class="code" href="ns__turn__msg_8h.html#a4cf6d6163c55de71ed0db7ffc7f7d1c6">stun_make_request</a>(u16bits method);
<a name="l00067"></a>00067 u16bits <a class="code" href="ns__turn__msg_8h.html#ae6d1657cfd1440d996f33308d1cecb8e">stun_make_indication</a>(u16bits method);
<a name="l00068"></a>00068 u16bits <a class="code" href="ns__turn__msg_8h.html#a2e5f7695e9086e18da2cf8337da2e6e8">stun_make_success_response</a>(u16bits method);
<a name="l00069"></a>00069 u16bits <a class="code" href="ns__turn__msg_8h.html#aa2a7a2e7b0d2c5f1f77743c059583b54">stun_make_error_response</a>(u16bits method);
<a name="l00070"></a>00070 
<a name="l00072"></a>00072 
<a name="l00073"></a>00073 u32bits <a class="code" href="ns__turn__msg_8h.html#aec6937aeeb5b9f998dca6a06d895777f">stun_adjust_allocate_lifetime</a>(u32bits lifetime);
<a name="l00074"></a>00074 
<a name="l00076"></a>00076 
<a name="l00077"></a>00077 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a5306f41a79a32f87b2b4f1f426ec6d21">stun_get_message_len_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> len);
<a name="l00078"></a>00078 
<a name="l00079"></a>00079 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#a773317d9a06446d542e9378813eedd6c">stun_init_buffer_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> *len);
<a name="l00080"></a>00080 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#afc785f07e46acbba9efa53a993432ccf">stun_init_command_str</a>(u16bits message_type, u08bits* buf, <span class="keywordtype">size_t</span> *len);
<a name="l00081"></a>00081 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#a636c9ed7eed002113d1f36b752f82091">stun_init_request_str</a>(u16bits method, u08bits* buf, <span class="keywordtype">size_t</span> *len);
<a name="l00082"></a>00082 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#a3624bce5a9fffcc1e2738edf575ecc03">stun_init_indication_str</a>(u16bits method, u08bits* buf, <span class="keywordtype">size_t</span> *len);
<a name="l00083"></a>00083 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#a61639b20b4a36d89230e93d91784dc50">stun_init_success_response_str</a>(u16bits method, u08bits* buf, <span class="keywordtype">size_t</span> *len, <a class="code" href="structstun__tid.html">stun_tid</a>* <span class="keywordtype">id</span>);
<a name="l00084"></a>00084 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#ad8201c3c337098ca6ed1658d1896d59c">stun_init_error_response_str</a>(u16bits method, u08bits* buf, <span class="keywordtype">size_t</span> *len, u16bits error_code, <span class="keyword">const</span> u08bits *reason, <a class="code" href="structstun__tid.html">stun_tid</a>* <span class="keywordtype">id</span>);
<a name="l00085"></a>00085 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#ac18e6049a1a491b4d7352ad62e418f4a">stun_init_channel_message_str</a>(u16bits chnumber, u08bits* buf, <span class="keywordtype">size_t</span> *len, <span class="keywordtype">int</span> length);
<a name="l00086"></a>00086 
<a name="l00087"></a>00087 u08bits* <a class="code" href="ns__turn__msg_8h.html#a74999bb045c5870c9175ee4e907c5ca3">stun_get_app_data_ptr_str</a>(u08bits* buf, <span class="keywordtype">int</span> *olength);
<a name="l00088"></a>00088 
<a name="l00089"></a>00089 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a0ec34e642f8cbf785ecef76f7fb0d87b">stun_is_command_message_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> blen);
<a name="l00090"></a>00090 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a8bd3ed5e7a38ef21a43b12b66f9d8e4c">stun_is_command_message_full_check_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> blen, <span class="keywordtype">int</span> must_check_fingerprint);
<a name="l00091"></a>00091 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a319caea4fbb143bff8603065a4619640">stun_is_command_message_offset_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> blen, <span class="keywordtype">int</span> offset);
<a name="l00092"></a>00092 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a056f82760a5c80f0bc497872d534045b">stun_is_request_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len);
<a name="l00093"></a>00093 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a94312a39c2c9f79b8f89bc3b70105186">stun_is_success_response_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len);
<a name="l00094"></a>00094 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#ac73cfbf0bdd56b17d57927aefa7673d8">stun_is_error_response_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> *err_code, u08bits *err_msg, <span class="keywordtype">size_t</span> err_msg_size);
<a name="l00095"></a>00095 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a0fd8b30d2c2684c12355a1f416d0be71">stun_is_challenge_response_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> *err_code, u08bits *err_msg, <span class="keywordtype">size_t</span> err_msg_size, u08bits *realm, u08bits *nonce);
<a name="l00096"></a>00096 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a42589bc7d80365b3df757387b4f42e88">stun_is_response_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len);
<a name="l00097"></a>00097 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a5eea6f087499dad7e35c950b30b0f5cf">stun_is_indication_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len);
<a name="l00098"></a>00098 u16bits <a class="code" href="ns__turn__msg_8h.html#ad36b53fe3bd0eff2cd84ac9e27ba868e">stun_get_method_str</a>(<span class="keyword">const</span> u08bits *buf, <span class="keywordtype">size_t</span> len);
<a name="l00099"></a>00099 u16bits <a class="code" href="ns__turn__msg_8h.html#a37d32e63c81a13609483b906225d584f">stun_get_msg_type_str</a>(<span class="keyword">const</span> u08bits *buf, <span class="keywordtype">size_t</span> len);
<a name="l00100"></a>00100 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a840a56d7d91d92cc60ce9f5d2f128647">stun_is_channel_message_str</a>(<span class="keyword">const</span> u08bits *buf, <span class="keywordtype">size_t</span> len, u16bits* chnumber);
<a name="l00101"></a>00101 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a1751b7757b11749c6a75a13e4f444e49">is_channel_msg_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> blen);
<a name="l00102"></a>00102 
<a name="l00103"></a>00103 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#a7ebe60f4317b4dc0cc70ac50435620d3">stun_set_binding_request_str</a>(u08bits* buf, <span class="keywordtype">size_t</span> *len);
<a name="l00104"></a>00104 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a5448e5280f0267a90b1639457f8b4873">stun_set_binding_response_str</a>(u08bits* buf, <span class="keywordtype">size_t</span> *len, <a class="code" href="structstun__tid.html">stun_tid</a>* tid, 
<a name="l00105"></a>00105                                   <span class="keyword">const</span> ioa_addr *reflexive_addr, <span class="keywordtype">int</span> error_code,
<a name="l00106"></a>00106                                   <span class="keyword">const</span> u08bits *reason);
<a name="l00107"></a>00107 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a28fc59311318aaa02ae9a92e7e10b697">stun_is_binding_request_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> offset);
<a name="l00108"></a>00108 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a396d7367745ba09aab0b2ae55970f253">stun_is_binding_response_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len);
<a name="l00109"></a>00109 
<a name="l00110"></a>00110 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#a49eaa17067381e5a8bb87032689c9215">stun_tid_from_message_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len, <a class="code" href="structstun__tid.html">stun_tid</a>* <span class="keywordtype">id</span>);
<a name="l00111"></a>00111 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#acf7c497e533584cc5c150839393851bb">stun_tid_message_cpy</a>(u08bits *buf, <span class="keyword">const</span> <a class="code" href="structstun__tid.html">stun_tid</a>* <span class="keywordtype">id</span>);
<a name="l00112"></a>00112 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#a4dbff9c87be27e792b731cd7db573bb6">stun_tid_generate_in_message_str</a>(u08bits* buf, <a class="code" href="structstun__tid.html">stun_tid</a>* <span class="keywordtype">id</span>);
<a name="l00113"></a>00113 
<a name="l00114"></a>00114 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a35249c98e8c71357b75d527d4ef94a6d">stun_get_command_message_len_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len);
<a name="l00115"></a>00115 
<a name="l00116"></a>00116 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a9a91835f95ce0fa295d8b9fbee9b98db">stun_attr_is_addr</a>(stun_attr_ref attr);
<a name="l00117"></a>00117 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#afe33b37ab65c1bca18377d50c88ff63b">stun_attr_get_type</a>(stun_attr_ref attr);
<a name="l00118"></a>00118 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a9abbba99b98eb81707300695ee51130e">stun_attr_get_len</a>(stun_attr_ref attr);
<a name="l00119"></a>00119 <span class="keyword">const</span> u08bits* <a class="code" href="ns__turn__msg_8h.html#af7fac8081f66d939f9f8211b88988678">stun_attr_get_value</a>(stun_attr_ref attr);
<a name="l00120"></a>00120 u16bits <a class="code" href="ns__turn__msg_8h.html#a6a51a99d0883abefba30099d4c9b22bc">stun_attr_get_channel_number</a>(stun_attr_ref attr);
<a name="l00121"></a>00121 u08bits <a class="code" href="ns__turn__msg_8h.html#a179a2c9747c8d56cb9b1fe24f323d152">stun_attr_get_even_port</a>(stun_attr_ref attr);
<a name="l00122"></a>00122 u64bits <a class="code" href="ns__turn__msg_8h.html#a9d262ce740ed097be15d47c3ca050d67">stun_attr_get_reservation_token_value</a>(stun_attr_ref attr);
<a name="l00123"></a>00123 stun_attr_ref <a class="code" href="ns__turn__msg_8h.html#a05ac5979839241de8b46e4ebdc145722">stun_attr_get_first_by_type_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len, u16bits attr_type);
<a name="l00124"></a>00124 stun_attr_ref <a class="code" href="ns__turn__msg_8h.html#a2672e36b81e61e29c4e61dbdda0cc547">stun_attr_get_first_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len);
<a name="l00125"></a>00125 stun_attr_ref <a class="code" href="ns__turn__msg_8h.html#a63699d8c20d5252c0eb94d8ad37e9d92">stun_attr_get_next_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len, stun_attr_ref prev);
<a name="l00126"></a>00126 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a66ee2e33b2311217a586165c02a6507b">stun_attr_add_str</a>(u08bits* buf, <span class="keywordtype">size_t</span> *len, u16bits attr, <span class="keyword">const</span> u08bits* avalue, <span class="keywordtype">int</span> alen);
<a name="l00127"></a>00127 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#aa61aa5b56c7b248208d654065d0faa57">stun_attr_add_addr_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> *len, u16bits attr_type, <span class="keyword">const</span> ioa_addr* ca);
<a name="l00128"></a>00128 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a84c87146057884663541eb75cf39853f">stun_attr_get_addr_str</a>(<span class="keyword">const</span> u08bits *buf, <span class="keywordtype">size_t</span> len, stun_attr_ref attr, ioa_addr* ca, <span class="keyword">const</span> ioa_addr *default_addr);
<a name="l00129"></a>00129 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#add3d216494939b2ad582b077d0aa914c">stun_attr_get_first_addr_str</a>(<span class="keyword">const</span> u08bits *buf, <span class="keywordtype">size_t</span> len, u16bits attr_type, ioa_addr* ca, <span class="keyword">const</span> ioa_addr *default_addr);
<a name="l00130"></a>00130 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#ae412f474395bab66f57c1bab62f93a93">stun_attr_add_channel_number_str</a>(u08bits* buf, <span class="keywordtype">size_t</span> *len, u16bits chnumber);
<a name="l00131"></a>00131 u16bits <a class="code" href="ns__turn__msg_8h.html#a36741ca3536b42c75c53b3174711403a">stun_attr_get_first_channel_number_str</a>(<span class="keyword">const</span> u08bits *buf, <span class="keywordtype">size_t</span> len);
<a name="l00132"></a>00132 
<a name="l00133"></a>00133 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a6bb7cd003830ff0ac19781c322b4653b">stun_get_channel_message_len_str</a>(<span class="keyword">const</span> u08bits* buf);
<a name="l00134"></a>00134 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a1081d45ea83b3ca6203ef6a28fbaf0fb">stun_is_specific_channel_message_str</a>(<span class="keyword">const</span> u08bits* buf, <span class="keywordtype">size_t</span> len, u16bits chnumber);
<a name="l00135"></a>00135 
<a name="l00136"></a>00136 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a97f8d17fdb478f2e7bc61eab956a7545">stun_set_allocate_request_str</a>(u08bits* buf, <span class="keywordtype">size_t</span> *len, u32bits lifetime, <span class="keywordtype">int</span> address_family);
<a name="l00137"></a>00137 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#aee82ab41df25d90b52bc4da2ac4520b1">stun_set_allocate_response_str</a>(u08bits* buf, <span class="keywordtype">size_t</span> *len, <a class="code" href="structstun__tid.html">stun_tid</a>* tid, 
<a name="l00138"></a>00138                                    <span class="keyword">const</span> ioa_addr *relayed_addr,
<a name="l00139"></a>00139                                    <span class="keyword">const</span> ioa_addr *reflexive_addr,
<a name="l00140"></a>00140                                    u32bits lifetime, <span class="keywordtype">int</span> error_code, <span class="keyword">const</span> u08bits *reason,
<a name="l00141"></a>00141                                    u64bits reservation_token);
<a name="l00142"></a>00142 
<a name="l00143"></a>00143 u16bits <a class="code" href="ns__turn__msg_8h.html#a358a289c2efc5c4c138170502bc66e9f">stun_set_channel_bind_request_str</a>(u08bits* buf, <span class="keywordtype">size_t</span> *len,
<a name="l00144"></a>00144                                           <span class="keyword">const</span> ioa_addr* peer_addr, u16bits channel_number);
<a name="l00145"></a>00145 <span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#a2d504956fe26d4e78e3e834f9d3d6688">stun_set_channel_bind_response_str</a>(u08bits* buf, <span class="keywordtype">size_t</span> *len, <a class="code" href="structstun__tid.html">stun_tid</a>* tid, <span class="keywordtype">int</span> error_code, <span class="keyword">const</span> u08bits *reason);
<a name="l00146"></a>00146 
<a name="l00147"></a>00147 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a3f09dff5fdeccfbc47c7480cb6d3022b">stun_get_requested_address_family</a>(stun_attr_ref attr);
<a name="l00148"></a>00148 
<a name="l00149"></a>00149 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#aa55f64405c3498fc12b22bb7da4393d7">stun_attr_add_fingerprint_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> *len);
<a name="l00150"></a>00150 
<a name="l00151"></a>00151 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a67da0506c593f8f42497ffa4b35c3e9c">SASLprep</a>(u08bits *s);
<a name="l00152"></a>00152 
<a name="l00153"></a><a class="code" href="ns__turn__msg_8h.html#a2dc5b0c077b68cc44f38ab67d29b991f">00153</a> <span class="preprocessor">#define print_bin(str, len, field) print_bin_func(str,len,field,__FUNCTION__)</span>
<a name="l00154"></a>00154 <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="ns__turn__msg_8h.html#a0e13bc290ed1179cc680707a32a519a6">print_bin_func</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">void</span> *s, <span class="keyword">const</span> <span class="keywordtype">char</span> *func);
<a name="l00155"></a>00155 
<a name="l00156"></a>00156 <span class="comment">/*</span>
<a name="l00157"></a>00157 <span class="comment"> * Return -1 if failure, 0 if the integrity is not correct, 1 if OK</span>
<a name="l00158"></a>00158 <span class="comment"> */</span>
<a name="l00159"></a>00159 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a7088bd26f28a59da675e43a6b70d760b">stun_check_message_integrity_by_key_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> len, u08bits *key);
<a name="l00160"></a>00160 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#ac915712e78913a408369413315127a5f">stun_check_message_integrity_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> len, u08bits *uname, u08bits *realm, u08bits *upwd);
<a name="l00161"></a>00161 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a07225e67c1bd9d114da0a1f9c59dc39c">stun_attr_add_integrity_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> *len, u08bits *key);
<a name="l00162"></a>00162 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a6f10d977a056cc8f58b7642ed1255cb6">stun_attr_add_integrity_by_user_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> *len, u08bits *uname, u08bits *realm, u08bits *upwd, u08bits *nonce);
<a name="l00163"></a>00163 
<a name="l00164"></a>00164 <span class="comment">/*</span>
<a name="l00165"></a>00165 <span class="comment"> * To be implemented by application</span>
<a name="l00166"></a>00166 <span class="comment"> */</span>
<a name="l00167"></a>00167 
<a name="l00168"></a>00168 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a1877a21fd41de76b3234d5582f3ed91b">stun_produce_integrity_key_str</a>(u08bits *uname, u08bits *realm, u08bits *upwd, u08bits *key);
<a name="l00169"></a>00169 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a3661b8fd1486b34d842a5c8e3d2f876c">stun_calculate_hmac</a>(u08bits *buf, <span class="keywordtype">size_t</span> len, u08bits *key, u08bits *hmac);
<a name="l00170"></a>00170 
<a name="l00171"></a>00171 <span class="comment">/* RFC 5780 */</span>
<a name="l00172"></a>00172 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#ab1d5f565d07e838005d1c786805308a9">stun_attr_get_change_request_str</a>(stun_attr_ref attr, <span class="keywordtype">int</span> *change_ip, <span class="keywordtype">int</span> *change_port);
<a name="l00173"></a>00173 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#ae2cf75a0daddd2ed18e40350be449976">stun_attr_add_change_request_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> *len, <span class="keywordtype">int</span> change_ip, <span class="keywordtype">int</span> change_port);
<a name="l00174"></a>00174 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a21b8ee9859eb6f397b8d4e4ed2aff68f">stun_attr_get_response_port_str</a>(stun_attr_ref attr);
<a name="l00175"></a>00175 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a6f59cb8291dc5fe1a524a13147938a48">stun_attr_add_response_port_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> *len, u16bits port);
<a name="l00176"></a>00176 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a228b194bc2694f0f1acccf053008e39e">stun_attr_get_padding_len_str</a>(stun_attr_ref attr);
<a name="l00177"></a>00177 <span class="keywordtype">int</span> <a class="code" href="ns__turn__msg_8h.html#a29126998d9a118d604a12524e292bfec">stun_attr_add_padding_str</a>(u08bits *buf, <span class="keywordtype">size_t</span> *len, u16bits padding_len);
<a name="l00178"></a>00178 
<a name="l00180"></a>00180 
<a name="l00181"></a>00181 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00182"></a>00182 <span class="preprocessor"></span>}
<a name="l00183"></a>00183 <span class="preprocessor">#endif</span>
<a name="l00184"></a>00184 <span class="preprocessor"></span>
<a name="l00185"></a>00185 <span class="preprocessor">#endif //__LIB_TURN_MSG__</span>
</pre></div></div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Tue Jan 22 2013 14:23:54 for TURN Server by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.0
</small></address>

</body>
</html>
